Помощь - Поиск - Пользователи - Календарь
Полная версия: Вопросы новичков
Город Мастеров > РЕДАКТОРЫ > Neverwinter Nights Aurora Toolset
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103
Vhall
QUOTE(Teranozavr_REX @ Apr 5 2007, 16:36) [snapback]106851[/snapback]
Естьу меня некий сорк НПС проблема в том что заклинания он кастует по своим каким то странным соображениям. Очень бы хотелось что бы при виде воина( скорее всего принанисении фихз урона) он накладывал себе вординг и щитки, а не спелмантию и кидался огнеными стрелами по чару с поглотом огня ( кстати в случае дождиков он соображает что по 50% имен и 40 поглота дождиками лупитьбезсмысленно)

Возможно я чего-то недопонимаю, но нельзя ли просто выдать нпс нужные заклы и только их?
Если нет, то стоит поиграться с CR - может помочь, ибо переписывание AI - самоубийство.
Teranozavr_REX
QUOTE
но нельзя ли просто выдать нпс нужные заклы и только их?

нет нельзя. Ибо если он решил что ТС класное заклинание пока все не выкидает ))) не успокоиться...
потом его еще Трусинг простопрет)) он несоображает что дождиками лудше максимизироваными бить
и так далие список можно продолжать до бесконечности иглавная проблема... о чем я собственно и спросил даже выдай ты ему только щитки он гордо пойдет в рукопашку...
QUOTE
то стоит поиграться с CR - может помочь

можно уточнить с чем поиграться ??? а то недопонял...
QUOTE
Сорку надо дать пакет защитный при левел апе в визарде. Точнее специализацию и проверить в бою.

специализацию на что???
и очень смущает фраза сорке на апе визарда ))

Новый вопросик.
надо что то типа такого
Функция. которая накладывает эфект паралича на всех(мобы НПС плееры) в данной локации
кроме того кто указан аргументом этой функции...

что то типа так
Neverwinter Script Source
Applay(oPC)

главной проблемой сейчас для меня есть как перебрать всех кто сейчас есть вданной локации((
Lex
Цитата(Teranozavr_REX @ Apr 11 2007, 10:40) [snapback]106981[/snapback]
главной проблемой сейчас для меня есть как перебрать всех кто сейчас есть вданной локации((

:
Neverwinter Script Source
GetFirstObjectInArea()
GetNextObjectInArea()


Чтобы отсеивать не мобов, юзай
Neverwinter Script Source
GetObjectType()


ps: юзай лексикон, фильтр или что хошь, но спрашивая каждый раз нужную функцию на форуме ты далеко не уедешь.
Teranozavr_REX
QUOTE
ps: юзай лексикон, фильтр или что хошь, но спрашивая каждый раз нужную функцию на форуме ты далеко не уедешь.


Lex - юзаю уже и то и то
Реально количество вопросов уменьшелось уже очень сильно, даже несмотря на мой некчемный английский.

Следующий вопрос.
пытаюсь сделать "Точило" При использовании делает проверочку, и если проверка удачная, накладует на оружие временный эфект Кина.

В чем проблема...
ненашел я такого Эфекта
Пытался вызвать заклинание вродебы скомпелировало но эфекта тоже недало
Neverwinter Script Source
ActionCastSpellAtObject

если я правельновыбрал функцию ошибка была скоре всегов параметрах.

желательно раскажите возможно ли наложить такой всетаки Эфект ну и как вызвать заклинание так что бы оно наложилось с задаными параметрами на данный обект


Добавлено я помойму понял надо накладывать Эфект не на сосздание а на Итем в руках
только вотнепонял пока как (((



Добавлено еще если можно подскажите какие срипты постаывить мобу ( помойму гдетосреди стандартных было) что бы он Юзал Хипс
diggers
Neverwinter Script Source
//:: Keen Edge
//:: X2_S0_KeenEdge
//:: Copyright © 2001 Bioware Corp.
#include "nw_i0_spells"
#include "x2_i0_spells"
#include "x2_inc_spellhook"
void  AddKeenEffectToWeapon(object oMyWeapon, float fDuration)
{
   IPSafeAddItemProperty(oMyWeapon,ItemPropertyKeen(), fDuration, X2_IP_ADDPROP_POLICY_KEEP_EXISTING ,TRUE,TRUE);
}
void main()
{
    if (!X2PreSpellCastCode())
        return;
    effect eVis = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
    effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
    int nDuration = 10 * GetCasterLevel(OBJECT_SELF);
    int nMetaMagic = GetMetaMagicFeat();
     object oMyWeapon   =  IPGetTargetedOrEquippedMeleeWeapon();
    if (nMetaMagic == METAMAGIC_EXTEND)
        nDuration = nDuration * 2; //Duration is +100%
    if(GetIsObjectValid(oMyWeapon) )
    {
        SignalEvent(oMyWeapon, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE));
        if (GetSlashingWeapon(oMyWeapon))
        {
            if (nDuration>0)
            {
                ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, GetItemPossessor(oMyWeapon));
                ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDur, GetItemPossessor(oMyWeapon), TurnsToSeconds(nDuration));
                AddKeenEffectToWeapon(oMyWeapon, TurnsToSeconds(nDuration));
            }
        }
        else
          FloatingTextStrRefOnCreature(83621, OBJECT_SELF); // not a slashing weapon
     }
     else
          FloatingTextStrRefOnCreature(83615, OBJECT_SELF);
}


Учись использовать то что уже есть. Скрипты спеллов можно найти в spells.2da

Уровень аи можно увеличить SetAILevel(...);
возможно поможет. По умолчанию минимальный, не использует даже нок.

Где-то на этом форуме спрашивали как сделать монстров-магов умнее, возможно это поможет и там. Но вряд-ли.
Vhall
QUOTE(Teranozavr_REX @ Apr 11 2007, 10:40) [snapback]106981[/snapback]
можно уточнить с чем поиграться ??? а то недопонял...

QUOTE(Teranozavr_REX @ Apr 11 2007, 10:40) [snapback]106981[/snapback]
о чем я собственно и спросил даже выдай ты ему только щитки он гордо пойдет в рукопашку...

Challange Rating (Creature Properties -> Advanced). То, как реагирует моб на игрока (& сколько за него дают опыта).
QUOTE(Teranozavr_REX @ Apr 11 2007, 10:40) [snapback]106981[/snapback]
специализацию на что???
и очень смущает фраза сорке на апе визарда ))

Имелся в виду Levelup Wizard (Creature Properties -> Classes). Там выставь специализацию сорку и (обязательно!) пролевелапь эээ... визардом.

Скорее всего, после этих действий нужно делать билд модуля.
azathoth
Цитата(Teranozavr_REX @ Apr 13 2007, 16:13) [snapback]107078[/snapback]
желательно раскажите возможно ли наложить такой всетаки Эфект

Neverwinter Script Source
Есть две функции для наложения эффекта: ApplyEffectAtLocation и ApplyEffectToObject.
ApplyEffectAtLocation накладывает эффект на определенную область, используется для визуальных эффектов и таких эффектов как «Вызов Существа». ApplyEffectToObject накладывает эффект на указанный объект.
* void ApplyEffectAtLocation(int nDurationType, effect eEffect, location lLocation, float fDuration=0.0f);
* void ApplyEffectToObject(int nDurationType, effect eEffect, object oTarget, float fDuration=0.0f);

* nDuratonType – тип длительности, DURATION_TYPE_INSTANT для мгновенной, DURATION_TYPE_TEMPORARY для временной, или DURATION_TYPE_PERMANENT для «вечной»;
* eEffect – нужный эффект;
* lLocation – место для наложения (для ApplyEffectAtLocation);
* oObject – объект, на который накладывается эффект (для ApplyEffectToObject);
* fDuration – время, которое будет длиться эффект (нужно указывать только для временных эффектов).

При наложении эффекта создается копия этого эффекта, которая назначается нужному объекту или месту.
Worldowner
Да, вот несколько абсолютно глупых вопросов:
1)как сделать воскрешаемого перса (не хенчмана). Есть у меня пару идей в этом плане, но почему-то срабатывает только на хенчмане. А мне надо как раз на непися повесить.
2)как повесить на непися эффект прозрачности (типа это призрак). В Андердарке есть один тип (остров создателя, призрачный дуэргар в тюрьме) но никак не получается разобраться какая часть его скрипта ответственна за это безобразие.
3)есть такой прикол: агрессивные вроде бы мобы почему-то не нападают. Просто стоят и смотрят, не делая никаких угражающих движений. В Андердарке (часть 1, первый уровень Подгорья, где феи дерутся с троллем) есть такая же проблема, а теперь и у меня то же возникло. Злобная вампирка, которой полагается кидаться на перса с первого взгляда, целясь клыками в горло, вместо этого смотрит на него влюблённым взглядом и изредка вздыхает. Можно это как-то пофиксить?
4)вопрос с той же вампиркой. есть у меня такая идея- сделать мага с автоматическим неподвижным заклинанием, и одеть его в тяжёлый доспех (чтоб был маг, но с крутой защитой). С персом это не проблема, а вот когда даю неписю-магу 1 левел воина и одеваю её в доспех, она, стерва. вообще перестаёт кастовать заклинания.
Teranozavr_REX
QUOTE(Worldowner @ Apr 16 2007, 15:41) [snapback]107176[/snapback]
3)есть такой прикол: агрессивные вроде бы мобы почему-то не нападают. Просто стоят и смотрят, не делая никаких угражающих движений. В Андердарке (часть 1, первый уровень Подгорья, где феи дерутся с троллем) есть такая же проблема, а теперь и у меня то же возникло. Злобная вампирка, которой полагается кидаться на перса с первого взгляда, целясь клыками в горло, вместо этого смотрит на него влюблённым взглядом и изредка вздыхает. Можно это как-то пофиксить?
4)вопрос с той же вампиркой. есть у меня такая идея- сделать мага с автоматическим неподвижным заклинанием, и одеть его в тяжёлый доспех (чтоб был маг, но с крутой защитой). С персом это не проблема, а вот когда даю неписю-магу 1 левел воина и одеваю её в доспех, она, стерва. вообще перестаёт кастовать заклинания.

я конечно сам тут многовопросов задаю но попробую посоветовать
3) у тебя скорее всегокак я думаю мобы относятся не кто фракции что надо
поставь им враждебную фракцию, и все оживет ( если есть вопрос как поставить тоже могу расказать желательно знать у тебя тулсета руская или нет)
4) заставить кастовать мага с учетом стил спеля так подозреваю очень трудно, тебе же надо получить Моба с АС. Куда проще поднять просто Ловкость или одеть вещи с АС ( не фулку и не щит). Можно просто поднять Базовое АС но помни что тогда моб небудет пробиваться даже фланговой атакой что делает его ооочень достойным противником


Neverwinter Script Source
#include "x2_inc_switches"

void main()
{
int nEvent = GetUserDefinedItemEventNumber();
if(nEvent == X2_ITEM_EVENT_ACTIVATE)
{
  object oPlayer=GetItemActivator();
  object oStvol = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPlayer);
 
  if (!GetIsObjectValid(oStvol)) return;

  itemproperty ipAddkeen = ItemPropertyBonusFeat(FEAT_KEEN_SENSE);
  AddItemProperty(DURATION_TYPE_PERMANENT,ipAddkeen,oStvol);

}
}

Такс еще немногоперефиксил ТС теперь он вродебы совсем такой как мне нужно)))
а вот с кином не все так сладко
пытался использовать приведеный пример не получилось
потом с учетом того что мне в перспективе еще несколько свойст таким образом добавлять, еще раз попытался сделать сам.Что получилось. приведено выше.компилятор ошибок невидет., результата работы нет ((

в чем ошибочка ?? икак всетаки его сделать... настоятельно прошу готовых решений невыкладывать, или покажите где у меня ошибка или дайте описание нужной функции..
azathoth
Цитата(Worldowner @ Apr 16 2007, 16:41) [snapback]107176[/snapback]
3)есть такой прикол: агрессивные вроде бы мобы почему-то не нападают. Просто стоят и смотрят, не делая никаких угражающих движений. В Андердарке (часть 1, первый уровень Подгорья, где феи дерутся с троллем) есть такая же проблема, а теперь и у меня то же возникло. Злобная вампирка, которой полагается кидаться на перса с первого взгляда, целясь клыками в горло, вместо этого смотрит на него влюблённым взглядом и изредка вздыхает. Можно это как-то пофиксить?

Монстры не нападают если появляются рядом с игроком (по-видимому не срабатывает OnPerception), нужно ставить DetermineCombatRound в скрипте появления.
Цитата(Worldowner @ Apr 16 2007, 16:41) [snapback]107176[/snapback]
4)вопрос с той же вампиркой. есть у меня такая идея- сделать мага с автоматическим неподвижным заклинанием, и одеть его в тяжёлый доспех (чтоб был маг, но с крутой защитой). С персом это не проблема, а вот когда даю неписю-магу 1 левел воина и одеваю её в доспех, она, стерва. вообще перестаёт кастовать заклинания.

Можно добавить фит позволяющий ностить броню без назначения уровней воина.
diggers
Neverwinter Script Source
// Returns Item property Bonus Feat.  You need to specify the the feat
// constant(IP_CONST_FEAT_*).
itemproperty ItemPropertyBonusFeat(int nFeat)


А еще IP_CONST_FEAT_feat_keen_sence не существует в природе, как и еще многих. А иначе чем с вещи, добавить фит никак.
Это тебе надо в нвн2, там addfeat(nFeat,oPc); removefeat(nFeat,oPc); на персонажа. rolleyes.gif
azathoth
---
В описании функции
Neverwinter Script Source
// Returns Item property Bonus Feat.  You need to specify the the feat
// constant(IP_CONST_FEAT_*).

ясно написано, что нужно использовать константы IP_CONST_FEAT_* (а не FEAT_*).

P.S. Также для кина стоит обратить внимание на функцию ItemPropertyKeen.

(ну вот, пока дописывал уже ответилиsmile.gif)
gennady
Цитата
1)как сделать воскрешаемого перса (не хенчмана). Есть у меня пару идей в этом плане, но почему-то срабатывает только на хенчмане. А мне надо как раз на непися повесить.

Neverwinter Script Source
//:://////////////////////////////////////////////////
//::  Воскрешаемый перс
//:: СЛОТ: OnDeath
//:://////////////////////////////////////////////////
void main()
{
    if (Random(2) == 0)
        PlayAnimation(ANIMATION_LOOPING_DEAD_FRONT);
        SetIsDestroyable(FALSE, TRUE, TRUE); // в принципе нужна только эта строка
        PlayVoiceChat(VOICE_CHAT_DEATH);
}


Цитата
2)как повесить на непися эффект прозрачности (типа это призрак).

Neverwinter Script Source
//:://////////////////////////////////////////////////
//:: Призрачный вид
//:: СЛОТ: ХБ
//:://////////////////////////////////////////////////
void main()
{
effect eVis = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);
effect eEffect = GetFirstEffect(OBJECT_SELF);
if (GetEffectType(eEffect) != EFFECT_TYPE_VISUALEFFECT)
ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(eVis), OBJECT_SELF);
// Запустим стандартный ХБ
ExecuteScript("nw_c2_default1", OBJECT_SELF);
}


Цитата
3)есть такой прикол: агрессивные вроде бы мобы почему-то не нападают. Просто стоят и смотрят, не делая никаких угражающих движений.

Это баг стандартного неверского скрипта ХБ. Атака перса включается со скрипта на OnPerception. Если эта атака сбилась по каким-то причинам, то мобы так и будут стоять, пока их по новой не атакуют. Можно добавить функцию атаки мобам:
Neverwinter Script Source
// Атака врага, если герой в радиусе 15 метров  /////////////////////////////
void ActAttackNPC(object oSelf = OBJECT_SELF)
{
object oVrag = GetFirstObjectInShape(SHAPE_SPHERE, 15.0, GetLocation(oSelf), TRUE, OBJECT_TYPE_CREATURE);
if (GetDistanceBetween(GetFirstPC(), oSelf) < 15.0)
{
  while (GetIsObjectValid(oVrag))// Проверить враждебного ПС в радиусе 15 метров
  {
  if (GetObjectSeen(oVrag, oSelf) && GetReputation(oVrag, oSelf) < 30)
    {
    AssignCommand(oSelf, ClearAllActions(TRUE));
    AssignCommand(oSelf, ActionAttack(oVrag));
    return;
    }
  oVrag = GetNextObjectInShape(SHAPE_SPHERE, 15.0, GetLocation(oSelf), TRUE, OBJECT_TYPE_CREATURE);
  }
}
}


Дописав в конец скрипта ХБ nw_c2_default1 такой код:
Neverwinter Script Source
if (GetIsInCombat(OBJECT_SELF)) return; // если уже атакует
if(GetArea(GetFirstPC()) == GetArea(OBJECT_SELF)) // если ПС в локе
ActAttackNPC(); // Атака врага

Worldowner
3) у тебя скорее всегокак я думаю мобы относятся не кто фракции что надо
поставь им враждебную фракцию, и все оживет ( если есть вопрос как поставить тоже могу расказать желательно знать у тебя тулсета руская или нет)

Мне может и далеко до мастерства, но такие базовые вещи как фракции я знаю. В том и дело, что фракция установлена правильно, курсор указывает мечиком, и бить можно, но она гадина почему-то не нападает. А смысл в том, чтобы она сама напала.
прим.: кажется, я нащупал обходной маневр. если видит, как сражаются союзники, то и сама начинает нападать.


4) заставить кастовать мага с учетом стил спеля так подозреваю очень трудно, тебе же надо получить Моба с АС. Куда проще поднять просто Ловкость или одеть вещи с АС ( не фулку и не щит). Можно просто поднять Базовое АС но помни что тогда моб небудет пробиваться даже фланговой атакой что делает его ооочень достойным противником

Ясно. Можно и так сделать, спасибо. Идея и была как раз в том, чтобы сделать её более крепкой, хотя и магом, потому как- большой босс.

Цитата(azathoth @ Apr 16 2007, 18:13) [snapback]107181[/snapback]
Монстры не нападают если появляются рядом с игроком (по-видимому не срабатывает OnPerception), нужно ставить DetermineCombatRound в скрипте появления.

Не, это не тот случай. мой установлен на карте.

Цитата
Можно добавить фит позволяющий ностить броню без назначения уровней воина.

И этот вариант испробовал, эффект тот же. Кроме того, это не очень правдоподобно, не по легенде, так сказать.
Zirrex
QUOTE
3)есть такой прикол: агрессивные вроде бы мобы почему-то не нападают. Просто стоят и смотрят, не делая никаких угражающих движений. В Андердарке (часть 1, первый уровень Подгорья, где феи дерутся с троллем) есть такая же проблема, а теперь и у меня то же возникло. Злобная вампирка, которой полагается кидаться на перса с первого взгляда, целясь клыками в горло, вместо этого смотрит на него влюблённым взглядом и изредка вздыхает. Можно это как-то пофиксить?

Что-то не так со скриптами. Включи debug функции, и посмотри, где затыкается АИ.

QUOTE
прим.: кажется, я нащупал обходной маневр. если видит, как сражаются союзники, то и сама начинает нападать.

Это неправильно. Враждебная фракция должна атаковать в любом случае.

QUOTE
4)вопрос с той же вампиркой. есть у меня такая идея- сделать мага с автоматическим неподвижным заклинанием, и одеть его в тяжёлый доспех (чтоб был маг, но с крутой защитой). С персом это не проблема, а вот когда даю неписю-магу 1 левел воина и одеваю её в доспех, она, стерва. вообще перестаёт кастовать заклинания.

Гм... ты меня, конечно, прости, но АИ все равно, что на НПС надето. Если фракция для персонажа враждебна, АИ обязан напасть на него. Тут дело не в фитах или одежде, а дело в АИ скриптах. Надеюсь, ты ничего в них не менял? У меня на модуле были маги, которых я одевал в тяжелые доспехи. Колдовали нормально. Есть вероятность, что если на НПС надет тяжелых доспех, то АИ считает, что ему нужно перейти к контактному ведению боя, а не забрасывать противника заклинаниями.
Teranozavr_REX
Neverwinter Script Source
itemproperty ipAddkeen = ItemPropertyVampiricRegeneration(FloatToInt(0.667*A));
  AddItemProperty(DURATION_TYPE_TEMPORARY,ipAddkeen,oStvol,720.0);

  itemproperty ipAddlvl = ItemPropertyOnHitProps(IP_CONST_ONHIT_LEVELDRAIN,20,100);
  AddItemProperty(DURATION_TYPE_TEMPORARY,ipAddlvl,oStvol,720.0);

Помогите еще раз)
есть вот такой кусок кода
первые две строки должны наложить вампирик реген что они успешно и делают
а вот последние две должны наложить лвлдрейк что у них совсем не получаеться
разкажите де тут прикол что то я недопонял как всегда в описаниях ItemPropertyOnHitProps поидее
azathoth
аргументами nSaveDC и nSpecial тоже должны быть константы типа IP_CONST_*
Teranozavr_REX
пасибо помогло))
в который раз убедился чтоне внимательнопрочитал описание...правда виною тому больше всего плохой английский (((

еднственная фигня
поставил константу
IP_CONST_ONHIT_SAVEDC_26
но после отработки скрипта на оружие появляеться все как надо но сДЦ 24 почимутов логе боя тоже ДЦ 24
Teranozavr_REX
подскажите пожалусто как сделать мобы ШД тое что бы он Юзал ХИПС...
когда тодавненько у меня чистослучайно этовышло... но повторитьнемогу а тогомодуля где этополучилось уже нет((
Kirful
Всем здрасьте...
Такая вот засада: накачал кучу хаков, портретов, сожрал последнюю память, а в тулсете их нигде, совешенно нигде нет! Эта штуковина меня совершенно убивает! Обидно так... не поможете? Скажите, пожалуйста, КУДА ТОЧНО и ЧТО КОНКРЕТНО положить. Ненавижу переспрашивать много раз, так что, плиз, напишите поподробней... unsure.gif
Lex
Цитата
ВОПРОС: Как пользоваться хаками?

ОТВЕТЫ:
1) Кидай хак в папку haks.
2) В модуле в свойствах найди закладку, посвященную хакам (Custom Content).
3) Подключи нужный тебе хак и работай.


еще была бы ненависть к задаче вопросов на форуме до того, как был просмотрен мануал или FAQ, было бы просто шикарно.

Kirful
Йа тупицо... shout.gif shout.gif shout.gif
Спасибо, но я так торопился swoon.gif
Хотелось поскорей начать, а ту-ут...
Я уже говорил спасибо? Да? Ну всё равно, СПАСИБО БОЛЬШОЕ!!!!
Worldowner
Спасибо всем, теперь всё нормально срослось.

Но появился новый вопрос. Нашёл я очень перспективный скрипт. есть такие обьекты- Труп зомби и Скелетнные кости. фишка в том, что при приближениии игрока превращаются в зомби/скелета. В общем, скрипты вроде достаточно простые, так что я заменил теги на нужных мне тварей... И почему это не работает? Обьект исчезает, а новая тварь не появляется. Как я представляю, игра почему-то не видит тех тварей, что я для него сделал.

Кстати, как делаются эффекты, когда вещи вроде как кастуют заклинания? Напр., башни с ловушками в Подгорье (которые иммитируют звуковой взрыв, и кастуют реальный ракетный шквал), или камни, которые удерживают Халостера (там вроде эффект луча холода, если не ошибаюсь).

И под конец (хотя с этого, возможно, следовало начинать)- подскажите если кто знает туториалы по конструктору вообще, и скриптам и созданию квестов в частности. Кое-что читал, но такие вещи как тонкости анимации NPC меня сейчас как-то не очень заботят- пока что мне вполне достаточно, чтобы неписи бродили по вейпоинтам.
Lex
Цитата(Worldowner @ Apr 26 2007, 19:16) [snapback]107551[/snapback]
туториалы по конструктору вообще

мануал
Aiwan
Мжет писать не Мануал,а АНАЛ? Тогда желающх скачать и посмотреть будет больше. А то ты все крупнее и крупнее буковки делаешь а толку никакого. rolleyes.gif
diggers
Цитата
Нашёл я очень перспективный скрипт.

Worldowner, но мы то его не нашли. Выложи его сюда(хотя бы ту часть, с которой сам работаешь), иначе вообще нет смысла его упоминать.

Тварь стандартная, или ты сам ее сделал?

Цитата
как делаются эффекты, когда вещи вроде как кастуют заклинания?


Neverwinter Script Source
//:: Ray of Frost
//:: [NW_S0_RayFrost.nss]
//:: Copyright © 2000 Bioware Corp.
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main(){
    if (!X2PreSpellCastCode()) return;
    object oTarget = GetSpellTargetObject();
    int nMetaMagic = GetMetaMagicFeat();
    int nCasterLevel = GetCasterLevel(OBJECT_SELF);
    int nDam = d4(1) + 1;
    effect eDam;
    effect eVis = EffectVisualEffect(VFX_IMP_FROST_S);
    effect eRay = EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_HAND);
    if(!GetIsReactionTypeFriendly(oTarget))
    {
        SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_RAY_OF_FROST));
        eRay = EffectBeam(VFX_BEAM_COLD, OBJECT_SELF, BODY_NODE_HAND);
        if(!MyResistSpell(OBJECT_SELF, oTarget))
        {
            if (nMetaMagic == METAMAGIC_MAXIMIZE)nDam = 5;
            else if (nMetaMagic == METAMAGIC_EMPOWER)
                  nDam = nDam + nDam/2;
            eDam = EffectDamage(nDam, DAMAGE_TYPE_COLD);
            //Apply the VFX impact and damage effect
            ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
            ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
        }
    }
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
}


Вместо существ подставь плейсиблы. Запускай когда игрок наступит на триггер.


Lex, если хочешь выделить ссылку, то важен не размер, а сам текст:
мануал
vs
мануал можно посмотреть здесь.
Lex
Цитата(diggers @ Apr 27 2007, 14:06) [snapback]107567[/snapback]
мануал
vs
мануал можно посмотреть здесь.

спорно как лучше. Лично мне больше нравится когда идет текст, а ключевое слово ведет на предмет поста. Или не слово, а целое предложение smile.gif
А такое выделение, как выше или на той странице - это ребячество... весна ж pardon.gif. Обычно я делаю жирным или подчеркиваю, размеры большие делаю не часто.
Worldowner
Цитата(diggers @ Apr 27 2007, 13:06) [snapback]107567[/snapback]
txt
Worldowner, но мы то его не нашли. Выложи его сюда(хотя бы ту часть, с которой сам работаешь), иначе вообще нет смысла его упоминать.

Тварь стандартная, или ты сам ее сделал?

Тварь моя, а скрипт- стандартный, висит на стандартных обьектах "труп зомби" и "скелетные кости", поэтому и не выложил. В оригинальной игре они часто встречаются, напр., в замке Дестера (основная компания, Chapter1a) в тюрьме таких полно.
Цитата(diggers @ Apr 27 2007, 13:06) [snapback]107567[/snapback]
Вместо существ подставь плейсиблы. Запускай когда игрок наступит на триггер.

Спасибо, щас испробую. Хм... Это случай, когда что-то кастует полноценный спелл, на игрока, когда он наступит на триггер? А как второй случай- создать видимость заклинания, постоянно. Вот как те "магические лучи" которые удерживают Халастера? Или те же башни, они постоянно кастуют видимость заклинания Звуковой взрыв на себя.
diggers
Нет, спеллом это становится только если выполняется из скрипта NW_S0_RayFrost.nss.
Строки:
Neverwinter Script Source
object oTarget = GetSpellTargetObject();
    int nMetaMagic = GetMetaMagicFeat();
    int nCasterLevel = GetCasterLevel(OBJECT_SELF);

из другого скрипта работать не будут, и OBJECT_SELF из триггера это, вроде, сам триггер. Наступившего получишь через GetEnteringObject();

А все это в целом было примером использования уже готовых скриптов, похожих на то что тебе нужно.

Цикличное повторение: повесь виз. эффект на хартбит-6сек периодич, или возми из стрелы мелфа-любая периодичность.
Цитата
В оригинальной игре они часто встречаются

Не будут же те, кто захочет тебе помоч, открывать сингл и рыться, искать тот скрипт? Многие отвечают на подобные вопросы, вообще не запуская тулсет.

Скорее всего ты не прописал resref своему зомби. Прописать его теперь можно скопировав объект. По тегу скриптами ищутся существующие объекты, по ресрефу создаются новые.

Цитата
Наступившего получишь через

Если тебе не нужен наступивший, то запускать это можно при создании модуля. Про триггер я писал - думал ты хочешь сделать ловушку, атакующую игрока, как в сингле.
Worldowner
Цитата(diggers @ Apr 27 2007, 21:55) [snapback]107585[/snapback]
Скорее всего ты не прописал resref своему зомби. Прописать его теперь можно скопировав объект. По тегу скриптами ищутся существующие объекты, по ресрефу создаются новые.

А! Вот и ошИПка yahoo.gif Именно так и есть, спасибо thank_you.gif , побежал править.


PS Кстати. что-то у меня кнопка "Q-Quote" барахлит- то работает, то отказывается...
Teranozavr_REX
У меня дома есть кошка даже уже не одна...( дома у Мамы) так вот поймает кошка Крысу принесет положит на кухне нате любуйтесь какая я охотница....

эээ так блин я не о том...
Я наконецто нашел решение проблемы которая уже наверное больше года терзала мой ум. Проблемы которая была озвучена тут и на которую вразумительного ответа так и не дали.
Сегодня я её решил)) может не настолько качественно как хотелось, но всетаки...
речь о том как заставить сорку кастовать щитки.

находим на сорке слот
OnSpawn
дописываем туда к стандартному скрипту
Neverwinter Script Source
ActionCastSpellAtObject(SPELL_HASTE,OBJECT_SELF,METAMAGIC_SILENT,FALSE,0,PROJECTILE_PATH_TYPE_DEFAULT,FALSE);
    ActionCastSpellAtObject(SPELL_SHADOW_SHIELD,OBJECT_SELF,METAMAGIC_SILENT,FALSE,0,PROJECTILE_PATH_TYPE_DEFAULT,FALSE);
    ActionCastSpellAtObject(SPELL_ELEMENTAL_SHIELD,OBJECT_SELF,METAMAGIC_SILENT,FALSE,0,PROJECTILE_PATH_TYPE_DEFAULT,FALSE);
    ActionCastSpellAtObject(SPELL_MESTILS_ACID_SHEATH,OBJECT_SELF,METAMAGIC_SILENT,FALSE,0,PROJECTILE_PATH_TYPE_DEFAULT,FALSE);
    ActionCastSpellAtObject(SPELL_DEATH_ARMOR,OBJECT_SELF,METAMAGIC_SILENT,FALSE,0,PROJECTILE_PATH_TYPE_DEFAULT,FALSE);
    ActionCastSpellAtObject(SPELL_PREMONITION,OBJECT_SELF,METAMAGIC_SILENT,FALSE,0,PROJECTILE_PATH_TYPE_DEFAULT,FALSE);

Таким образо получили хоть не сильно умную но вполне обкастованую сорку.
Сделано тривиально но с точки зрения играка, очень эфективно выглядит yahoo.gif

попрежнему пытаюсь научить ШД юзатьхипс
Neo
Цитата(Worldowner @ Apr 28 2007, 18:27) [snapback]107612[/snapback]
Скорее всего ты не прописал resref своему зомби. Прописать его теперь можно скопировав объект. По тегу скриптами ищутся существующие объекты, по ресрефу создаются новые.

Цитата(Worldowner @ Apr 28 2007, 18:27) [snapback]107612[/snapback]
А! Вот и ошИПка Именно так и есть, спасибо , побежал править.

ммм... просвятите меня пожалуйста, каким ра.... образом вы умудрились, не заполнив поле ресреф, создать объект в палитре? откройте свойтва объекта и посмотрите wink3.gif оно будет иметь значение yes3.gif возможно не то, которое вы предполагали pardon.gif
r1Stranger
А кто подскажет, где взять прогу, которая конвертірует форматы відео(avi,mpeg) в формат bic?
Waromon
Попробуй RAD Video Tools. Например здесь.
Worldowner
Вот такие скритики. Что они делают: существо (полагается, что это будет нежить) спавниться мёртвым, но при приближении игрока воскресает и ясное дело, нападает. Проверено- впечатление потрясающее. Но надо ещё доводить до ума. Мелкие проблемки описаны ниже, но есть один главный вопрос:
может можно сделать так, чтобы необходимость триггера отпала, просто прописать скрипт на самом существе, и не заморачиваться с тонкостями его размещения?
(в том виде, в каком он щас есть скрипт df_slfres01, если его ставить на HB самого существа, не сработает)

(Кстати, если ставить RaiseCorpse(oTarget,VFX_IMP_RAISE_DEAD,FALSE) то тварь будет вообще неубиваемая оконьчательно. Представьте себе вечного стража, который как нимфа из Леса Невервинтер не может покинуть защищаемую область, но на ней вечно воскрешается? Это такая фишка, может быть полезной.)

существо
onSpawn=df_slfres02:
Neverwinter Script Source
#include "x0_i0_corpses"
void main()
{
KillAndReplaceRaiseable(OBJECT_SELF);
ExecuteScript("nw_c2_default9", OBJECT_SELF);
}


триггер
onHeartBeat=df_slfres01 или OnEnter=df_slfres01:
Neverwinter Script Source
#include "x0_i0_corpses"
void main()
{
object oCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
object oTarget=GetNearestObjectByTag("deathknight");
   if (GetIsObjectValid(oCreature) == TRUE && GetDistanceToObject(oCreature) < 10.0)
   {
    RaiseCorpse(oTarget,VFX_IMP_RAISE_DEAD,TRUE);
    //DestroyObject(OBJECT_SELF, 0.5);
   };
}


если ставить на OnEnter, то проверка на приближение игрока не нужна.
если отменить запуск скрипта nw_c2_default9, то когда его наконец убивают, сразу воскрешается, встаёт, а затем медленно исчезает.

Если ставить на OnEnter, может возникнуть путаница при ипользовании большого количества существ, но DestroyObject не обязателен.

Если ставить на onHeartBeat, трудностей с количеством существ больше 1 не возникнет- просто разместить триггер под конкретным существом. Но возникает другая проблема с DestroyObject: если его нет, то существо каждые 6сек полностью востанавливается, а если есть, то возникает только визуальный эффект воскрешения, а самого воскрешения почему-то не происходит.

Цитата(NeoJSmith @ Apr 28 2007, 18:24) [snapback]107615[/snapback]
ммм... просвятите меня пожалуйста, каким ра.... образом вы умудрились, не заполнив поле ресреф, создать объект в палитре? откройте свойтва объекта и посмотрите wink3.gif оно будет иметь значение yes3.gif возможно не то, которое вы предполагали pardon.gif

Хи-хи-хи. crazy.gif тайна сия велика есть и могуча.
diggers
KillAndReplaceRaiseable(OBJECT_SELF);
Код функции скорее всего описан в библиотеке x0_i0_corpses и можно посмотреть там ее содержимое.
Думаю она не слишком сложная и ее легко переписать для конкретной ситуации.

Если надо поднять целую комнату зомби то можно сделать это 1им запуском своего скрипта, а запускать его когда игрок наступит на триггер-войдет в комнату.

Если надо поднимать кучу одиночных зомби, то можно, как в onHeartBeat=df_slfres01, повесить на хартбит плейсибла поиск игрока и проверку растояния. Это технически очень просто, ни триггеров, ничего не надо, но хартбит и проверки растояния едят ресурсы сервера и если таких плейсиблов будет десятков 5 то лучше сделать 1ым способом(триггерами), иначе будут тормоза.

Цитата
проблема с DestroyObject: если его нет, то существо каждые 6сек полностью востанавливается

Опять же, посмотри что за
RaiseCorpse(oTarget,VFX_IMP_RAISE_DEAD,TRUE);
в той же библиотеке, и поправь как тебе надо.
Должен удаляться плейсибл, и на его месте создаваться зомби. Когда плейсибл удалится, его хартбит-скрипт перестанет работать.
Может там задержка, и спавн зомби происходит когда плейсибла-трупа уже нет, и скрипт не может найти куда ставить зомби?

Вот в этой теме как раз сейчас о спавне речь.
Worldowner
Вот новый вар моего скрипта, ставиться на спавн, не требует триггера. Но почему-то не работает, не могу разобраться почему.
Идея такая- из спавна запускается функция, симулирующая HB (DelayCommand+return).

Код
//::///////////////////////////////////////////////
//:: Name
//:: FileName  df_spwnslfres1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    onSpawn=
    Creates 1-time-self-raiseble dead body
    that self-res when PC gets near 10f
    Use this on undeath creatures to surprice player

*/
//:://////////////////////////////////////////////
//:: Created By:Worldowner
//:: Created On:
//:://////////////////////////////////////////////
#include "x0_i0_corpses"
object oCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
int iUndead;
void getPCNear()
{
  if (GetIsObjectValid(oCreature) == TRUE && GetDistanceToObject(oCreature) < 10.0)
   {
    RaiseCorpse(OBJECT_SELF,VFX_IMP_RAISE_DEAD,TRUE);
    DelayCommand(2.0, RaiseCorpse(OBJECT_SELF,VFX_IMP_RAISE_DEAD,TRUE));
    SetLocalInt(OBJECT_SELF, "iUndead", 1);
    SetIsDestroyable(TRUE,FALSE,FALSE);
    }
}


void DeathHB()
{
DelayCommand(6.0, getPCNear());
if(GetLocalInt(OBJECT_SELF, "iUndead")!=1)
{
  return;
}

}




void main()
{
  DeathHB();
  KillAndReplaceRaiseable(OBJECT_SELF);
//SetIsDestroyable(FALSE,TRUE,FALSE);
  ExecuteScript("nw_c2_default9", OBJECT_SELF);
}

2diggers
Цитата
Должен удаляться плейсибл, и на его месте создаваться зомби. Когда плейсибл удалится, его хартбит-скрипт перестанет работать.
Может там задержка, и спавн зомби происходит когда плейсибла-трупа уже нет, и скрипт не может найти куда ставить зомби?

Ты не прав. Замена плейсибла на плейсибл происходит в скрипте... ох, забыл как называется, ну он на обжекте "труп зомби" в палитре. А здесь подход совсем иной- кич сначала на спавне становится мёртвым, затем воскрешается.
Ну а востальном... Разумные мысли, действительно стоит обдумать.

(PS т.е. плейсибла на крич)

PPS сорри, перепутал тег. не убивайте меня за это, плз. Лучше обьяните, можно редактировать свои посты?

PPPS Кстати, в том топике речь о NWN2, а не о первом NWN
diggers
А где хартбит сам себя перезапускает?

Neverwinter Script Source
#include "x0_i0_corpses"
object oCreature = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC);
int iUndead;
void getPCNear()

Оно вообще компилируется?

Neverwinter Script Source
return;
}
}

return завершает выполнение текущей функции. Зачем там ретурн, если после него и так ничего нет?

В нвн2, кроме кеширования крич, ничего нового в спавне вроде нет.
azathoth
Цитата(Worldowner @ May 5 2007, 18:14) [snapback]107803[/snapback]
Use this on undeath creatures to surprice player

Use this on undeaD creatures to surpriSe player

А еще скрипты и DelayCommand на мертвых существах не работают. Или ставь делай на модуль или создавай рядом невидимый глазу плейс воскрешающий близлежащее умертвие с нужным тэгом.
Worldowner
Цитата(diggers @ May 5 2007, 18:05) [snapback]107804[/snapback]
А где хартбит сам себя перезапускает?

Оно вообще компилируется?

return завершает выполнение текущей функции. Зачем там ретурн, если после него и так ничего нет?

В нвн2, кроме кеширования крич, ничего нового в спавне вроде нет.

Компилируется. Формальных ошиПок нет. Ошибка в логике.

Как понял, так и составил, я не мастер, даже не уверен что основы уже усвоил. Но видимо, неправильно понял (ясно, потому как не работает). Разве return не возвращает в начало функции? Идея такая- запустить скрипт, который будет вертеться в памяти независимо от того, жив ли хозяин скрипта, а потому вопрос- возможно ли такое?

Версия, воскрешающая через второй обьект приведена выше, но очень хочется чтобы можно было просто прописать скрипт в нужном криче и не заморачиваться с тонкостями размещения.
Потому и прошу совета- МОЖ КТО ЗНАЕТ, КАК ЭТО СДЕЛАТЬ?

Цитата(azathoth @ May 6 2007, 02:48) [snapback]107809[/snapback]
Use this on undeaD creatures to surpriSe player

Спасибо. Но это такая мелочь. Лучше дай дельный совет насчёт скрипта.
virusman
QUOTE(Worldowner @ May 6 2007, 18:22) [snapback]107821[/snapback]
Разве return не возвращает в начало функции?
Нет. Return - выход из текущей функции и возврат (return) управления дальше к тому куску кода, который вызвал эту функцию.
diggers
Neverwinter Script Source
void dohb(object oCre)
{
  SendMessageToPC(GetFirstPC(),GetName(oCre));
  DelayCommand(6.0,dohb(oCre));
}
void main()
{
  dohb(OBJECT_SELF);
  SetIsDestroyable(0,1,1);
  ExecuteScript("nw_c2_default9",OBJECT_SELF);
}

Работает и на труп. Перестает работать если крича удалена DestroyObject() или умерла при SetIsDestroyable(1). Вот этого, про делей, я раньше не знал.
Aiwan
DelayCommand - это задержка команды которая дается всеравно кому-то. Если того, кто ее должен выполнить неактивен (умер, дестроился) то и команда не выполнится.
Epsilon
Задаю самый глупый вопрос какой только смог придумать, но ответ на который мне нужен: Почему я не могу скриптом давать вещи игроку (CreateItemOnObject("Таг объекта",oPC)wink3.gif? Наружные скобки в скрипт не печатаю.
Lex
Цитата(Epsilon @ May 7 2007, 10:27) [snapback]107848[/snapback]
CreateItemOnObject("Таг объекта",oPC)

надо CreateItemOnObject("Рез Реф Объекта",oPC)
Epsilon
У меня складывается впечатление, что меня игнорируют.
На данный момент мой вопрос изменился, вернее их стало несколько больше, а на старые я нашел ответ
1-Как отсрочить появление окна смерти, при остаточной смерти, и как при этом воскресить игрока, в новой области.
2-Как сделать реакцию фракций на отдельного игрока, в смысле что на одного нападают а другого защищают
3-Как пишеться условие "остаточная смерть" в скрипте

Мне не нужны скрипты, а нужен совет каким образом их составлять, ведь я понимаю как их делать, но не знаю всех возможностей Toolset'а

По возможности пишите на мыло:undefined


PS. в вопросах новичков у меня есть вопросик
Lex
Цитата(Epsilon @ May 7 2007, 10:37) [snapback]107850[/snapback]
1-Как отсрочить появление окна смерти, при остаточной смерти, и как при этом воскресить игрока, в новой области.

скрипт onPlayerDeath в свойствах модуля. Там окошко вызывается. Можно соотв. и вообще его не вызывать.

Цитата(Epsilon @ May 7 2007, 10:37) [snapback]107850[/snapback]
2-Как сделать реакцию фракций на отдельного игрока, в смысле что на одного нападают а другого защищают

только скриптами, так как все игроки в 1 фракции. Те надо писать свою систему реакции на обнаружение игрока (onPerception + библиотеки аи). Есть флаг определенный есть - атакуют, нет - игнорируют.

Цитата(Epsilon @ May 7 2007, 10:37) [snapback]107850[/snapback]
3-Как пишеться условие "остаточная смерть" в скрипте

что такое остаточная смерть?

Цитата(Epsilon @ May 7 2007, 10:37) [snapback]107850[/snapback]
По возможности пишите на мыло:undefined

еще раз: на мыло врядли кто будет писать.
Epsilon
Остаточная смерть - это когда игрок умер навсегда, когда в окне выскакивает только "Загрузить игру"
С почтой все ясно

Насчет фракций. Ведь можно сделать реакцию фракций на предмет в инвентору игрока, или какого либо предмета в н-ной области
Lex
Цитата(Epsilon @ May 7 2007, 10:55) [snapback]107852[/snapback]
Остаточная смерть - это когда игрок умер навсегда, когда в окне выскакивает только "Загрузить игру"

в функции которая выдает окошко о смерти (там что-то или про PopUp или еще как-то, не помню уже) есть параметр, который отвечает за то, есть ли кнопка RESPAWN в этом окошке или нет. Ставь его FALSE.

Цитата(Epsilon @ May 7 2007, 10:55) [snapback]107852[/snapback]
Насчет фракций. Ведь можно сделать реакцию фракций на предмет в инвентору игрока, или какого либо предмета в н-ной области

можно. концептуально это тоже самое что я выше тебе написал. Те нельзя просто настроить фракции и все само заработает (так можно только для варианта, когда реакция на всех игроков должна быть одинаковая). Нужно скриптить. А вот что проверять и как это уже от ситуации и задачи зависит.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2025 Invision Power Services, Inc.